Winning/losing doesn't contain enough information for efficiently determining ELO.
If you are a skilled toplaner, and, at your current ELO, win 56% of your games, it will take a long time to gain ELO.
Yes, if you are better than the average toplaner in your elo, you will climb, but not quickly.
The problem is that winning or losing is the only way to gain elo. Bad matchmaking and simple bad luck plays a large role in your overall winrate, which will obscure the signal of your skill.
RIOT has said that they will not incorporate things like K/D/A and cs into ELO calculations, and that is a good thing. You don't want to create incentives that cause players to make decisions that improve their personal ELO while also reducing their chances of winning the game.
But there's another way around this. If there are objectives on the map that are necessary for the team to win, getting these objectives should reduce the amount of ELO you lose when you lose the game. Conversely, losing these objectives should reduce the amount of ELO you gain when you win the game.
Take inhibitors, for example. You need to take at least one inhibitor to win the game. If you take an enemy inhibitor and lose, it was a closer game. Give the team that lost but got an inhibitor more ELO. Give less elo to the team that won the game but lost an inhibitor.
This will improve the efficiency of gaining/losing ELO without distorting the incentive to win.