You don't need this
if ((stepperX.distanceToGo() != 0)) {
stepperX.run(); // Move Stepper into position
}
just have
stepperX.run();
and it will automatically stop when it gets to the destination.
And DO NOT use delay() as it prevents stepperX.run() from being called as frequently as it should. Have a look at how millis() is used to manage timing without blocking inSeveral Things at a Time.
And see Using millis() for timing. A beginners guide if you need more explanation.
...R