An adaptive quality control loop for link rate adaptation based on modulation and/or coding schemes (also referred to as "MCS levels") and one or more spreading codes that adaptively selects channel condition thresholds in real-time without measuring all the factors that affect selecting optimal channel condition thresholds. The adaptive quality control loop involves adjusting the channel condition thresholds with variable up and down steps based on target quality metrics along with measurements such as error detection results, relative frequencies of visiting each MCS level, and transmitted data rates, wherein the target quality metrics can be a block error rate or bit error rate target criterion. If the target quality metric is a block error rate target criterion, the variable step is determined using a desired MCS error rate based on MCS probabilities, MCS error rates and the block error rate target criterion. If the target quality metric is a bit error rate target criterion, the variable step is determined using a desired MCS error rate based on MCS probabilities, MCS error rates, average rate of bit errors, data rate, and the bit error rate target criterion.