Don't muck about with stack pointers.
Restructure your code
Thanks for the reply.
Hmm, not the quick and easy answer I was hoping for!
I'm winding a stepper motor driven carriage back to a start position. When it gets past the start position it operates a microswitch which triggers an interrupt. The interrupt service routine then backs the carriage off the microswitch to the final start position, and the code hopefully returning to the main loop.
As I mentioned in my OP, the interrupt service routine returns to the myStepper.step(steps) method, then hangs somewhere in it.
I'm not sure where to start restructuring my code. I thought just losing the return address of the myStepper.step(steps) method would get me back to the main loop just after it was called. A quick, albeit dirty solution!