My ADC reads are always returning 0 when the UART is closed

This is a known bug in the firmware that was fixed in the firmware release. The bug is caused by ADC reads not working when the UART is closed which always returns a 0. If upgrading to v1.8.88.0 or newer is not an option,, there is a potential work around you which is to use a recurring timer to open the UART, read the ADC, and then close the UART. This will save more power than keeping the UART continuously open but will still use more power than desired. Unfortunately this workaround will introduce another issue from a bug in the firmware which will cause the BL600 to rollover after roughly 12 days of use. The work around for this bug is to reset the module after 10 days of  use.