The most important factor is the Steem Power of the voters. Each person on Steemit has a different level of Steem Power, and those with more Steem Power bequeath more money when they upvote.
Another factor is the power percentage. For your first upvote, your Steem Power is utilized at 100%. As you upvote more and more, your percentage dips. In order to get back to 100%, you need to wait about 39 minutes. This measure prevents users and bots from spamming upvotes.
I've also noticed that my Steem Power bestows bigger rewards when I upvote posts that have already made a lot of money. On a post that only has $.50, my vote will increase the value by a few cents. On a post already worth more than $1000, my upvote can increase the value by more than a dollar.
Other than that, I'm clueless.
Why 39 minutes? Seems kind of random?
If SteemPower is the major factor, does this not create a the common problem of "the rich get richer"?
Anyone with money can buy and obtain SteemPower right? And by doing so they have a larger influence?
This sounds eerily similar to most governments.
Limited Voting Rate
Each account is rate limited on how frequently it can vote in order to prevent automated scripts from having more effective power than manual voting. This rate limiting is implemented by dividing the voting weight over all votes by an account in a 24 hour period. Someone who votes for 100 posts a day will have each vote worth about 1% of their weight.
Encourage Distribution of Voting
Each account is only allowed to vote with up to 5% of its voting weight on any given post. To maximize its voting power, an account must vote for at least 20 items per day.