Я реализовывал систему управления шаговыми двигателями на ATmega128.
Скажу вам, что когда число двигателей два и более, использовать только микроконтроллер для этого становится непросто.
Я использовал контроллер Toshiba TA8435H. На плате их было установлено три штуки сразу.
В контроллере есть всё, что надо: дробёжка шага, торможение, экономичный режим, выключение и проч.
Я реализовывал алгоритм плавного разгона/торможения с переменным ускорением на этом контроллере.
Работает классно.
Устройство само (внешний вид)
вот. Это так, для устрашения.

Будут вопросы, пишите. С удовольствием расскажу, что знаю.
Remember about the Main...