The FIFO has different behaviors depending on the parameterization. If you turn on overflow protection then if you write to a full FIFO the data being written into the FIFO will be dropped and the FIFO will remain full. If overflow protection is off the data will be written into the FIFO and the FIFO will go from being full to having only one word buffered (internal pointers will cross).
If the ADC data is coming in too fast then I would use a DMA to pull the contents out of the FIFO into memory then have the CPU access the data in memory. You could also take this one step further and implement multiple buffers in memory so that when the CPU is bogged down the DMA will continue to buffer more data while the CPU tries to catch up.