It sounds like you are going to be attempting software "bit-banged" USB. That, while possible, is severely frowned upon, especially when you have the resources to do it properly at your fingertips.
In answer to your question, yes, you can use a USB mini B connector. It is no different to a USB B connector except it is much smaller and contains one extra pin - USBID - which you can completely ignore (it's only used on USB On-The-Go devices).
USB is quite a heavy protocol to do in pure software - it won't leave much "room" for you to do much else. Better would be to re-program the ATMega16U2 chip that is used for the current USB interface. You will need some form of hardware programmer for it - you can use another Arduino Uno, and once done you won't be able to directly program the ATMega328P chip through the USB, so you would need some other method for connecting that (external USB serial adapter cable, or another Arduino), but the ATMega16U2 chip is specifically designed to work with the USB. Offloading the USB portion of your project onto that chip and using the serial interface that is already wired up to communicate commands and instructions to/from the ATMega328P would be a much more powerful (and reliable) system. There's plenty of tutorials and links around to show you how to reprogram that chip.