Measuring rotations problem with motor encoder
Stopping short (by a small amount) sounds like the ratio may not be quite what you think. 

Try counting the gear teeth on each gear in the gear train and finding the ratio. For example, we found that some steppers with gear ratios advertised as 4096:1 were actually 4075.77283951:1. 

I would use quadrature so that you can drive the motor backward if it overshoots, but if you can get what you need without that.. 



Well, okay, if you can't look at it and count teeth, someone else has, but not necessarily for your exact motor. 

The exact gear ratio for the 298:1 micro metal gear motor is:
(25/12) × (34/9) × (37/10) × (35/13) × (38/10) : 1 (or approximately 297.9238:1)

Also, your question refers to 291, not 298, so if that's the number in your program...