Non radix-2 FFT hardware implementation : zero-padding vs custom algorithms
The FFT is just a fast method to implement the Discrete Fourier Transform (DFT). It's based on the idea that you can break a large DFT down into a bunch of smaller ones and the combine the results for the final DFT. That requires the DFT length to be broken down into it's prime factors. The more and the smaller the prime factors are, the more efficient the algorithm. That's why a power of 2 is the best choice: the prime factors are small (they are all 2) and there is a lot of them. 

1023 is awkward since the prime factors are 3, 11 &amp; 31, so the efficiency gain you can get from an FFT over a straight DFT algorithm is limited. Stating the obvious: a 1024 FFT would be much faster, take a lot less code and data memory and will essentially have the same latency as a 1023 FFT. You better have a VERY good reason to not zero-pad one sample.

For the basics on prime factor FFT see https://en.wikipedia.org/wiki/Prime-factor_FFT_algorithm.