button to stop stepper

My guess is that the line motor.step(2400, FORWARD, INTERLEAVE); will complete the full movement before it passes on to the the next line which is delay(2000); and which will also block the Arduino for a further 2 seconds before the button is tested.

You probably need to move the stepper one step at a time and check the switch between steps.

The AccelStepper library will probably be more suitable as it has non-blocking motor moves.

...R
Stepper Motor Basics
Simple Stepper Code