How to measure precision speed of bldc motor with encoder which has 1024 pulse per revolution
Side observation: FOC doesn't work well at low speeds since the EMF is low… consider using a sensored drive if you need the motor to run at 1 RPM (unless there is a gear train and your encoder is on the output shaft). For reference even screwdrivers usually are sensored (and they have a geartrain in the middle).
As for the speed measurement probably you missed something in your circuit: if you are doing FOC you should have plenty of timing facilities and probably a beefy controller to start with. From your question it seems you attached the encoder to an interrupt and counting in it. Unless it's very slow, don't, it's a waste of processor to count every pulse in software.
Tie the encoder signal to a timer/counter unit (many motor driver have dedicated quadrature encoder inputs to do that, even) and let the hardware do its job. Then in your servo loop (maybe 1kHz, or less) the counter will have the average speed for a servo cycle.