You need to separate the concept of popular and trending. Make two lists. Have a popular list at a couple fixed time grains - all time, last year, last 30 days (what you have now). Then for your trending list use a z-score like described in this stack overflow post [0] to normalize. I honestly wouldn't invest a ton of time trying to do something fancier then that. You're trying to rank with one signal, you can't expect computers to perform magic.
I'd also consider a third list - highlighted. Have your team internally pick something new and interesting once a month. Finding novel and interesting things is something humans are really good at.
[0] - http://stackoverflow.com/questions/787496/what-is-the-best-w...