I'm designing my own ESC for a simple quadcopter drone. The ESC is powered directly from a 4S LiPo battery, and I'm now working on the back-EMF voltage sensing needed for sensorless commutation. The microcontroller I'm using is an STM32F103C8T6, and the motor control method is standard 6-step trapezoidal commutation. My idea is to connect each of the three motor phases to a resistor divider and feed the scaled outputs into three ADC channels on the MCU. I would also use another resistor divider on the battery voltage to generate a VDD/2 reference. In software, I would compare each floating phase voltage to this VDD/2 value in order to detect zero crossings.
My question is whether this approach is suitable and reliable for a drone ESC. In other words, is it acceptable to sense the back-EMF directly through resistor dividers and read it with ADC channels on an STM32F103, comparing each reading in software against a VDD/2 reference for zero-crossing detection when using 6-step commutation?
The schematic (so far):
The BLDC motor that I'm using (iFlight XING-E Pro 2207 2750Kv):

