Плюсую шаговик. Можно и без концевика. Посмотрите продукцию
Trinamic. Например, TMC2160. Есть и другие, со встроенными ключами,
если достаточно небольшой мощности двигателя. Этот драйвер шаговика имеет SPI интерфейс (есть модели с однопроводным UART). Встроенное обнаружение заклинивания, позволяет не использовать концевик просто доводя двигатель до упора - драйвер позволяет делать измерение механической нагрузки.

Я бы сконцентрировался на шаговиках. BLDC только если они нахаляву достались, их много и нужно пристроить. Потому, что такой роскоши, как выше, для BLDC я не знаю.
Вот по-проще, TMC2109 - меньше, дешевле и не требует внешних ключей. Интерфейс - однопроводный UART.

Прекрасно работают у меня в принтере. Есть примеры использования без концевиков - доводят до упора и до срабатывания детектора клина. Оттуда потом считают шаги.