Yes, this is known as convergent encryption.
The usual way to do it is content hash keying, where you hash the plaintext, then use that hash as a key for deterministic symmetric encryption. You get authentication "for free" by checking that the hash matches, though that means the ciphertext is unauthenticated and you probably want to avoid modes like CBC with its padding attacks.
The symmetric key can in turn be encrypted using one or more long term keys (symmetric or asymmetric). That way only the encrypted keys need to be stored for every user, but the encrypted data itself can be deduplicated.
The limitations mentioned in the other answer are real. The server or anyone observing its space use and processing can tell that two users encrypted the same piece of data. You can also verify whether the ciphertext matches a plaintext guess. This does not make the encryption useless, but is something you have to take into account.