Speed isn't necessarily the most important factor, packet integrity is. You can still have a fast connection but drop multiple packets.
With that being said, you might try increasing the "network smoothing factor" bar in the options. (move it to the right) If you have the network smoothing factor bar too far to the left you can experience rubber banding.
It can be difficult to determine if packets are being dropped because it's something that you typically won't notice while web browsing, checking email, watching videos, etc but you will notice it when gaming. The quickest way is to ping something with the -t flag and see if you drop any packets. For example "ping -t www.google.com" I also recommend powercycling your router and modem if you haven't done so already.
If you want to take it a step further, you can try pinging the BF3 servers that you are connecting to.
Launch the game and connect to a server. Alt tab out, then from a command prompt type (case sensitive)
Look for the IP address that the battlefield executable is connecting to and ping that server with the -t flag. (for a continual ping) Observe if there is any packet loss.
You can also increase the size of the packets with the -l flag. eg:
ping www.battlefieldserver.com -l 1024 -t
This will ping the server continually with a 1kb packet.