Shouldn't the code say:
position = (position + direction + 1) % 12;
The +12 there is so that % works correctly (ie the number never becomes negative)
The +12 is to keep the number positive. The direction contains the movement so a +1 wouldn't make sense.
The +12 there is so that % works correctly (ie the number never becomes negative)