@aepj
This is an age-old problem! Old hard disks had this problem, they would not know for sure where the stepper was positioned. Early on, the microcontroller would just force the actuator arm against a rubber stop by issuing more than the total number of steps! The drives sounded like little automatic weapons. Drives today generally have feedback to assist with position synchronization.
You need at least one limit switch, or if your stepper has stops you can do the count past limit trick. If you use a switch, you should only need to initialize the stepper once to 0 count during setup(); there after just incrementing or decrementing counts. If your stepper is loosing position, that issue should be corrected - perhaps replacing that unit with a more capable unit or double checking to ensure the power supply is providing the correct voltage and supplying enough current.
If you still want to implement an interrupt, this may be helpful:
Ray