First point is that the amount of noise depends on the bandwidth of the measurement, whereas the amount of signal doesn't (so long as its somewhere in the passband).

And secondly an FFT is really a series of measurements each with a bandwidth equal to fs/N where fs is the sampling frequency and N is the number of points in the FFT.

Changing the sampling frequency or changing the number of points of the FFT both affect the apparent noise level in an FFT spectrum (and so does the choice of FFT window). The difference in dB between signal peaks and noise floor is not just a property of the circuit being measured.

For instance here are some plots of that same signal (averaged to reduce variation in the noise floor), with 256, 1024 and 8192 point FFTs. In each case the raw data is identical.

They are plotted with two scales, the left one for signal level, the right hand one for noise density, aka power spectral density (well amplitude-squared rather than power to be precise).

When measuring noise you normally want to talk about power spectral density, as this is a property of the system being measured, be it an amplifier or whatever.

If you take an FFT without recording the sample-rate and number of points and window function, you cannot subsequently determine the absolute noise level even if you know the absolute signal levels.

Another subtlety is that very low signal peaks can be buried in the noise in one measurement, but clearly discernable in another - increasing the number of FFT points, or decreasing the sampling rate, or both will lower the apparent noise floor in a spectrum to reveal buried peaks.

If you reduce the sampling rate its required that the pre-digitization anti-aliasing filter scales to match otherwise aliased noise won't be removed. However these days its not hard to increase the FFT size to 10^6 or more which can reveal more detail.

Many simple audio analysis packages don't present spectral densities, high-end equipment may give a choice of spectrum or spectral density, but I quite like the presentation of both using dual axes as in the graphs above. I'll post the Python code for this if anyone's interested.