В старых завалах в шкафу нашел сделанный когда-то драйвер шагового двигателя на Тини2313.
Помнится, что программу писал тогда на Algorithm Builder'е. Но сырков не осталось...
Поэтому отряхнув от пыли, написал новый драйвер для нее на Си.
Работает прекрасно, из минусов только - транзисторы надо было ставить помощнее, у меня там воткнуты обычные С547.

Конечно, добавил функционала. Платка сейчас работает и по замыканию контактов "вперед/назад", и по UART.
Схему мне рисовать как обычно лень, но она и проста как три рубля.
Выходы РВ0...3 идут через резисторы 1кОм на базы N-P-N транзисторов, эмиттеры на землю, коллекторы - на обмотки моторчика. Не забываем про защитные диоды на каждый транзюк. Общая точка катушек - на +питания двигателя. Я гоняю моторчик на 5 вольт питания, но там вроде как можно/нужно больше вольт подавать. Не вдавался в детали.
Входы РА0...1 при замыкании на землю крутят моторчик в обе стороны.
Управление по UART интересней. Управляется МК одним байтом. Старший бит определяет направление вращения, биты 6...0 - количество шагов двигателя. Т.е. за один раз можно повернуть ротор до 127 шагов (228,6 градуса). Для большего угла есть фича - отправлять не один, а два байта сразу друг за другом. МК отработает без остановки.
Также, когда МК отработает свой "байт", то по UARTу отправляет мастеру подтверждение - ранее полученный байт. Это может быть командой для отправки мастером нового байта на МК. Или просто для контроля, что МК байт принял правильно и успешно отработал повернув ротор.
Проект на Си CodeVision в аттаче.