Two simple rules would eliminate hoarding.
1. Autowaive of 40-man, not-25-man (DL excluded, but once they are eligible to come off, they must be added to the 25 within one real life day, or they too are waived) players that are out of options on opening day (gives owners the 5 period prep-time to add them). Claiming team must place the player on the 25-man or he has to clear waivers before he can be put in the minors. This is exactly what happens in real life.
2. 6-year free agents (players with 6 years of service that aren't on the 40-man at rollover) get exposed to everyone and market takes care of distribution. Owner has flexibility to offer more than standard AAA salary (which would still be the minimum), so if you think a guy will help, you can offer him (for example) $82K on a minor league deal, and he'll go to the highest bidder, instead using some unknown algorithm that figures (often incorrectly) where he'll have the best chance to play. This is what happens in real life, which is a nice bonus too.
Do those to things, and player hoarding as we know it is over, and we are also in line with MLB in terms of realism.