I would add that your work environment is going to play a big part. If you are in a garage with no temperature control you can expect thermal expansion to cause variation in your equipment.
I would probably use limit switches to trip a time programable relay. the motor would turn until it triped a limit switch. That would trigger a relay for the set time. Connect the motor control signal to the normally closed side of the relay. Then once the timer goes off the the relay opens...