To make the system really work, there are several changes I would consider.
First, I would want to create a tally system for each CS. Every turn you are friends with a CS, you get 1 point. Every turn as allies is worth 2. Being friends at Vote nets maybe 15-20 points, and being allies at Vote nets 30-40 points. The CS votes for the civilization with whom it has the most points. This system would reward long-term relationships in a way that it totally ignores right now. The bonus points for friend/ally at vote would also create value for bribery.
Another reason I like the point system is you could conceivably have a vote that extends for decades as Civs try to accrue the needed points, creating a build up more similar to Apollo Program.
Concerns would be AI handling of the extended vote.
Second, and much more difficult to ever implement would be giving each major civilization 2 votes. 1 vote would be leader choice, and the second would be an automated population vote. The population would have a point system similar to the above one, with factors like happiness and culture. Happy empires net 1 point a turn, unhappy -1, very unhappy -2. Each adopted policy might be worth a one time bonus of 5 points. Ambassador units could be trained to go into rival territory and amass 20 points with that civ's population. Obviously, all theoretical numbers at this point.
On top of the point system, a war started with another civ will remove 20+ points from each others populations, denouncement -10, and a DoF will add 10+. Having the Police State policy would guarantee the population would vote for it's leader as well.
The second idea here is designed with the goal of making diplomatic victories involve much more than minor civ counts. It would be an active dynamic where players are strongly rewarded for peace but get bonuses for cunning (ambassadors).