Sephiroth is easily one of the the hardest bosses in the original Kingdom Hearts, to the point of being at least on par with the final boss, and as such a great deal of preparation is needed. First, Strike Raid, Second Chance, Dodge Roll and MP Rage are absolutely essential. If possible, equip two MP Rage, meaning, unless you chose the staff, you'll have to be at Level 66 to earn the second MP Rage. Otherwise, being above Level 55 is best. Do not equip any other special abilities like Ragnarok or Ars Arcanum. Don't equip more than one "Combo Plus" and "Air Combo Plus" abilities. Equip any other abilities to boost Sora's power like Berserk and Critical Plus. Scan is useful, as it lets you see Sephiroth's HP and know when he's about to enter the next phase of the battle, but there are other signs to let you know this.
If possible, equip the Ultima Weapon keychain, but otherwise equip weapons to boost Sora's MP and magic abilities. Oathkeeper, Lionheart or Lady Luck work for this by increasing Sora's max MP while still giving a strong attack. Also equip as many Elixirs as possible, or Megalixirs if you are out of Elixirs, and be sure to get Curaga from Aerith in Hollow Bastion. Be sure to have Curaga as one of the Spells equipped for Shortcut options when you need it. If you're not too confident with evading Sephiroth's attacks, you can equip whatever variation of Aero you have available as a Shortcut to reduce damage from Sephiroth's attacks. Finally, equip accessories to boost Sora's defense and HP. Gaia Bangles or Omega Arts work for this. Also note that all of Sephiroth's attacks except for Stigma count as the dark element, so equipping armor to resist that element will help greatly.
For the first part of the battle, Sephiroth walks around the arena performing his Horizontal Slash and Stigma attacks, usually using the former when you come close. It is possible, by leaping towards him to avoid his Horizontal Slash, to hit Sephiroth with a combo. After suffering three to four hits from a combo, Sephiroth will teleport and attempt a Teleport Slash on you. You can either jump away or use Dodge Roll to evade the attack. Also note that in the short period after he teleports and before he reappears, you can actually lock on to him and see where he is going to appear.
At this time, simply chip away at Sephiroth's HP with normal attacks, and heal when needed as MP Rage will restore your MP when you are attacked. It is important to note that while Sephiroth has six health bars; only five will show up, so your first attacks will only appear to do no damage. Once Sephiroth's red health bar is depleted and the yellow bar is showing he holds out his hand and says "Come", signaling he is entering his second phase of attack.
Sephiroth will next begin dashing around the arena very quickly, frequently using Teleport Slash. His first move upon entering this phase is to teleport and cast Heartless Angel. It is vital to hit him with Strike Raid at this time. The casting animation for Heartless Angel involves a halo appearing around Sephiroth. If you can attack him before the halo completes, you can stop the casting. Even if he successfully starts to casts it, continue to attack him.
If you are hit while casting Heartless Angel, Sephiroth will run up to you in an attempt to finish you off with an attack. If you can't hit Sephiroth in time to stop him, your only chance is to quickly heal yourself with an Elixir right before you are struck by Heartless Angel. If timed right, the Elixir will refill your HP and MP right after Heartless Angel damages you. Sephiroth uses this attack periodically during this phase, so listen carefully for him to call the attack and stop him. Alternatively, to stop Heartless Angel, use Superglide, get close to him and hit him before he can finish announcing the attack.
Sephiroth's other tactics are to simply run around the arena using Teleport Slash frequently. His other new move, Omnislash, hits very quickly and can be difficult to survive. You can cast Curaga during the attack, but he'll likely attack you and stop you before you can cast it. A better option is to hit him with Strike Raid when he calls out the attack, as you are invincible during Strike Raid and thus can become immune to his many slashes. Otherwise, repeatedly use Dodge Roll or well-timed Guards. His final attack in Omnislash is to pierce the ground, sending a shockwave in every direction, but it can be avoided by Dodge Rolling directly away from his frontal area. After using Omnislash, Sephiroth immediately teleports and uses Heartless Angel.
In general for Phase Two, always have at least two MP so you can use Strike Raid, and keep your HP high. With MP Rage, Sephiroth will be causing you so much damage, he'll be restoring your MP quickly so keeping your MP up should not be a problem. When Sephiroth is down to his yellow health bar, he will summon a green and black aura, signaling the final phase of the battle.
Sephiroth's final phase begins with him casting Supernova. The meteors can be dodged with moderate difficulty. When Sephiroth begins the attack's end, target him and use Strike Raid - this will not damage him as Sephiroth is invincible while using Supernova, but will make you immune to the attack's final hit. The final hit can also be dodged with proper timing by Dodge Rolling behind Sephiroth as he uses it. If you are hit, though, it won't do too much damage; nothing Curaga can't fix. Sephiroth will also begin using Shadow Flare quite often and start erratically teleporting while spinning and slashing, leaving Shadow Flares in his wake. Although this seems daunting to avoid, during this time, Sephiroth is vulnerable. Instead, you can use Strike Raid, both avoiding damage and hitting him at the same time. This is perhaps the opportune moment to hit Sephiroth.
Sephiroth also retains all the attacks from his previous two phases. He still casts Heartless Angel, but no longer calls out the name of the move, making it vital to keep him targeted to know when he's casting it. Sephiroth also still uses Omnislash, and may even use it twice in a row. He still uses Stigma when interrupted while casting Heartless Angel.
Although this is easily Sephiroth's most dangerous form, the damage all of his moves can be minimized with deft dodging and usage of Strike Raid to exploit its temporary invincibility. Since he may still be landing hits on you quite often, your MP should be high throughout the phase, and healing yourself and attacking should be no trouble. As long as you can react to Sephiroth's moves quickly with the appropriate counter, you can defeat him. Focus on getting in hits whenever possible, while surviving his attacks using Curaga and Strike Raid and he will eventually be defeated.
In the Final Mix version, there are more options, due to the new Leaf Veil/Leaf Bracer ability, you can time Curaga right to avoid most of Sephiroth's blows and powerful finishers. Thus you can also avoid and heal at the same time, so if you see a powerful attack coming, don't hesitate to heal if you have the chance.