Under what circumstances is a non-uniform quantizer preferable over a uniform quantizer?
assuming the number of bits in the quantizer output word is the same for both uniform and non-uniform quantizer, then the number of quantization levels is the same for both.  then it is just a matter of placement of the quantization levels.

the "noise" or error of quantization is the difference between the quantized signal (the output) and the unquantized input.  the error will be proportional to the spacing of the quantization levels.  levels that are more closely spaces will have smaller quantization error than where levels that are spaced further apart.

let's assume the number of bits and the number of quantization levels are constant.

a uniform quantizer has uniformly-spaced quantization levels throughout the range.  large signals have the same spacing of quantization levels as do smaller signals.  that means that the smaller signals will have a lower signal-to-noise ratio (SNR).

a non-uniform quantizer can be designed so that the quantization levels are spaced more closely for smaller amplitudes and spaced more far apart for larger amplitudes.  as a result the signal-to-noise ratio can be made constant for both small signals and for large signals.  the SNR of the non-uniform quantizer would be worse than the uniform for large signals, but would be better than the uniform quantizer for small signals.