Further to Mike's post...
This may or may not be relevant, so please forgive me if I am 'preaching to the choir'!
FWIW, the following is my attempt to explain the use of the move() and moveTo() functions:
stepperX.moveTo(200); // '(200)' is your desired 'Target Positioin'.
stepperx.run();
// To move back to the 'start' position
stepperX.moveTo(0); // '(0)' is now your 'Target Positioin'.
stepperx.run(); // '(0)' is the stepper Current Position on 'boot' or 'reset', ie the 'start' position.
// If you were to...
stepperX.move(-200); // This will also move the stepper CCW 200 steps back to the 'start', (0) position.
// But if you do this instead...
stepperX.move(100); // This will move the stepper CW 100 steps further from the Start Position.
TIP.
stepperX.moveTo(0); // This will always move the stepper Start (0) position from any current position.
stepperx.run();
Recap.
stepperX.moveTo(); Uses 'Targets'.
All targets positions within a 360deg rotation are always fixed unless reset by setCurrentPosition(); or a reboot/reset.
stepperX.move(); Uses 'steps' only, not targets.