Perhaps a touch of realism could be introduced here, to make it work better. Potentials rolled at the start are really meant to feel like a genetically natural capability, and thus, to reach that potential maximum is a lot harder than increasing your stat from well below potential maximum to just a lot below it (say, from 8 to 10 when your potential maximum is 20).
So, make it so that the effectiveness of the various kinds of training decreases as the stat gets closer to the potential maximum. But as noted, occasionally you can surpass that 'natural' potential maximum - this could be interpreted as the PC being influenced by the magic of the Drakalor chain, and being able to overcome genetics... but "naturally" increasing the potential maximum through training should be a much more difficult process.
As I see it, assuming no magical influences (potions, etc), potential maximums should require dedicated training over short periods in order to increase. They should not be alterable through herbs (except perhaps for very low stats - for instance, toughness potentials below 8 should be able to be raised by morgia root to 8), or through other non-real training means (corpses that train stats, for instance - hill orcs, for instance). Instead, they should require direct training, either in context (such as battle) or with Garth (I'm assuming that the biggest fast-money exploits will be fixed in 1.2).
So basically, here's what I'm thinking - stat increases should require a level of training depending on the ratio of the current level to the potential maximum, with the amount going to infinity if they're equal. A simple formula that should work nicely is N/(1-Current/Potential) = N*Potential/(Potential-Current), where N is some base training requirement. So, if we take N=100, then for a potential of 25 in a stat, the amount of training necessary to raise from 10 to 11 would be 100*25/15 = about 167, whereas to train it from 24 to 25 would require 2500. I'd also make N depend on the current potential, so that it's easier to train when their potential is lower, and harder when it's higher. Maybe M*Potential^2/(Potential-Current), where M is some constant, could work nicely. Just to demonstrate the effect of that potential squared (using M=4, so N=4*25 in the previous case), if the potential is only 10, and the current stat is 4, then by the original formula, you have 100*10/6 = about 167, but by the modified one, you have 4*10*10/6 = about 67 - significantly lower. And to train from 49 to 50 when the potential is 50 would require 4*50*50/1 = 10,000, which would be much harder than the 2500 to reach potential of 25.
Make it so that training the stat itself works cumulatively - that is, you need only to keep training, and the stat will eventually increase. But make it so that increasing the potential is harder, with positive training of the stat randomly being reset to zero if at the maximum, and requiring, say, 2x the total training needed to increase the stat up the final step to the current potential (so, if potential is currently 25, using the formula above, you'd need 2500 to get from 24 to 25, and then you'd need 5000 to increase from 25 to 26). And as I noted, if at maximum, you should require direct training, no herbs or corpses, etc (and no stat-reduction items, either), to continue training without magical methods.
The alternative of simply having race-based natural potential limits is also an option. So, a troll would be able to train naturally to 50 in toughness where a dark elf wouldn't be able to get past 15, for instance. But to me, basing it on race only simply eliminates the feeling of the current PC as an individual.