How about this to fix this contest:
Have the top players in the league SPONSOR dunkers. Like, take the top five All-Star vote getters overall and have them sponsor a dunker each.
Right around Christmas, do the initial campaign promoting the dunk contest sponsorship. You could do it throughout the day...damn near all the stars play on Christmas, so you make that the platform for the stars to initially promote their players. They narrate promos talking about their sponsored player, maybe even tie it into a new shoe commercial....whatever.
Continue HEAVY campaign promotions throughout January, and especially around the Super Bowl.
Winner gets $1 million; sponsoring NBA player's favorite charity gets $1 million.