We address the problem of developing a well-performing and implementable scheduler of users with wireless connections to the central controller, which arise in areas such as mobile data networks, heterogeneous networks, or vehicular communications systems. The main feature of such systems is that the quality of each user's channel is time-varying due to fading. The evolution of the channel over its quality states thus causes a time-varying transmission rate of each user. We consider Markovian channel dynamics, relaxing the common but unrealistic assumption of i.i.d. channels. We first focus on three-state channels and show that threshold policies (of giving higher priority to users with higher transmission rate) are not necessarily optimal. For the general case we design a scheduler which generalizes the recently proposed Potential Improvement (PI) scheduler, which gives priority to the users who are unlikely to improve their actual transmission rate soon by much. We propose two practical approximations of PI, whose performance is analyzed and compared to existing alternative schedulers in a variety of simulation scenarios. Our computational experiments indicate that the variant of PI, which only relies on the steady-state distribution of the channel, is robust and performs extremely well, and therefore we recommend its use for practical implementation.