The most efficient way to better prepare your Pokemon for the challenges that wait ahead is to actually battle everyone, including the trainers on routes that require you to defeat all the other trainers in that given area before they will battle you. This ensures that your Pokemon will receive the most Experience they possibly can during your adventure.