while (digitalRead(home_switch)) { // Make the Stepper move CCW until the switch is activated
stepper.moveTo(initial_homing); // Set the position to move to
initial_homing--; // Decrease by 1 for next move if needed
stepper.run(); // Start moving the stepper
delay(1);
}
There is no excuse for the delay() in there.
You do NOT want to change the value of initial_homing until you KNOW that the stepper has stepped.
while (!digitalRead(home_switch)) { // Make the Stepper move CW until the switch is deactivated
Wouldn't it be better to just count how many steps is needed to do that, and step away from the limit switch that number of steps every time?
is there a way I can force it to home off the home switch every loop, so it only has the run to 70 turns to go wrong?
Of course you can do that.