TPIC6B595 Shift Registers Controlling Multiple Steppers

Hello,
I finished the panel and here's the video:

Apart from a couple of motors misbehaving (I read somewhere that the 28BYJ's could misstep if ran backwards ?!? Don't know if that's my issue) everything else is working.
As you notice in the video the code is running in a loop picking random positions but not the positions I want. At first run, I need to move the motors from zero position to x position and if that position makes a nice pattern then I'll write it down and will then insert it in my TargetPos[] for the future. i.e. I have to fill my TargetPos[] with the only positions that make a nice pattern. I'm loading 3 foto's as examples. But I can't do what I said if the motors are running in auto in a loop and could not figure out how to move them just to one position and stop.
Also, it would be nice if I could do without millies. Just read a PIR sensor and if activated move to one of TargetPos[] and stop there util the PIR sensor is triggered again.