По той программе что Вы написали, у Вас команда на реверс присутствует один раз. Причем в самом начале работы Вы четко определяете направление вращения. У Вас начинается движение "влево", двигатель делает 1000 шагов, делает реверс, и сновы выполняет 1000 шагов, останавливается, с обмоток двигателя снимается питание - программа завершена. Если Вы заранее не знаете в какую сторону будет движение, может быть Вам удобно было бы использовать физический вход РЕВЕРС. В самой программе Вы однозначно задаете определенное направление вращение, когда Вам необходимо сделать реверс, то замыкаете GND и РЕВЕРС на блоке. Сигнал активируется по переднему фронту, и двигатель сделает реверс.
Если Вы блок прибретали недавно, то там теперь есть режим покомандного управления - как только отправляется в блок команда, двигатель ее сразу же отрабатывает. Но это требует постоянного подключения к компьютеру. Когда Вам нужно переместиться то подаете в блок последовательность команд DL* (или DR*), SDxx*, MVxx*, если во время движения необходимо сделать реверс, то отправляете команду RS* и двигатель тут же сменит направление вращения.