Sensorless Control of BLDC motor

62kHz PWM? How are you driving your MOSFETs? Hope they are switching a lot
faster than the PWM signal.

Your code is reading the backEMF but this will be slow, analogRead takes 110us, so
0.33ms is used just reading them. I'd recommend over-clocking the ADC to get these
values more rapidly.

You need to add logic to loop looking the the idle phase's back EMF only, waiting for the
zero cross, then using that to commutate. You don't need to read all 3 phases at once.

After the startup-sequence you can jump into the back-EMF sensing code directly.

You seem not to be using PWM at all as all your code uses digitalWrite - that's a recipe
for over-current damage. The start up sequence should be at a lowish PWM value
to limit the current (remember how low the winding resistance is).

There needs to be a secondary PID loop to control PWM - you compare desired speed
(or torque) with actual and use that as the error term.