MCP3221 ADC always returns zero in Proteus
To answer my own question almost a year later:

The teaching assistant who gave me this task told me that this behavior is a known "bug" in Proteus and not my fault. Quite anticlimactic.