So this gets pretty far in to implementation details but I’ll try to give a concise answer –
The Mooshimeter is built around an ADS1292 24-bit ADC. The datasheet for that part is here. Table 1 gives the effective number of bits as a function of sample rate. When you configure the sample rate in the app, you are setting the ADS1292’s sample rate. The way the Mooshimeter is set up it, it only uses between half and a quarter of the ADS1292’s input range (depending on what input is selected), so taking the value from table 1 of the datasheet and subtracting 1 or 2 gives you the ENOB you can expect from a single reading at the sample rate.
Example: at 8kHz table 1 shows 12ENOB, so you can expect between 10 and 11 ENOB depending what input you have selected.
Oversampling increases the ENOB by .5 bits per power of 2. So oversampling 4x adds 1 bit, oversampling 16x adds 2 bits, etc.
Hope this sheds some light on the subject :)