Как итог я сделал так:
- настроил таймер на энкодер
- загрузил в него значение 32768 (0x8000)
- сделал прерывание для этого таймера по CCR3=1 (CC3IE) и CCR4=65535 (CC4IE)
- в обработчике прерывания первым делом восстанавливаю TIMx-›CNT = 32768, затем проверяю с какой стороны прерывание по установленным флагам в TIMx-›SR, делаю корректировку глобальной переменной типа s32 (можно и больше) на величину 32767 в + или в -.
- в любом участке программы можно проверить текущее положение через расчёт суммы текущего смещения TIMx-›CNT - 32768 и общей суммы (глобальной переменной s32)
Все работает. Всем спасибо!