Вылечено.

GPIOA->ODR &= 0xFF03;
GPIOA->ODR |= (1 << StepTable[0][halls_values]) | (1 <<
StepTable[1][halls_values]);

вместо GPIOA->ODR = (1 << StepTable[0][halls_values]) | (1 <<
StepTable[1][halls_values]);