32 bit and 64 bit refers to memory (RAM) addressing capability.
Current processors are 32 bit, this means they can generate numbers of length 32 bits to address memory cells in RAM. This offers a limit of 4GB or RAM.
So, current OS and Softwares use 32bit addressing scheme to address RAM in their codes. When these codes are executed in ALU of Processor, the 32 bit address is passed to Memory Controller, which then locates the corresponding location in RAM.
64 bit processors support 64 bit addressing scheme. That is they can generate addresses of 64 bit lenght, so they can address upto 16 Exabytes of RAM (1 Exabyte=billion billion bytes).
Current Softwares and OS are not written with the 64 bit addressing scheme, but they are written for 32 bit addressing scheme, so they can make use of only 4GB out of 16 Exabytes or RAM (if you put that much of RAM, that is!).
So, these softwares should be rewritten to adopt 64 bit addressing scheme, in order to exploit the full potential of 64 bit processor.
Current processors use 32 bit Instruction length, but in 64 bit processors, instruction length may also be larger, this results in a new set of instructions. These new instructions are not made use of, by current softwares.